home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / Book Chapters / 05 - User Interaction / CheckKey / CheckKey.c < prev    next >
C/C++ Source or Header  |  1995-03-07  |  953b  |  53 lines

  1. #include <stdio.h>
  2.  
  3.  
  4. static Boolean CheckKey(short keyCode)
  5. {
  6.     KeyMap    myKeyMap;
  7.     short    byteIndex;
  8.     char    theByte, theBit;
  9.     char    *thePointer;
  10.  
  11.     GetKeys(myKeyMap);
  12.     byteIndex = keyCode >> 3;
  13.     thePointer = (char *)&myKeyMap[0];
  14.     theByte = *(char *)(thePointer + byteIndex);
  15.     theBit = 1L<<(keyCode & 7);
  16.     return ( (theByte & theBit) != 0 );
  17.  
  18.     return (   ( (myKeyMap[keyCode >> 3]) & (1L<<(keyCode & 7))) != 0);
  19. } /*CheckKey*/
  20.  
  21.  
  22. /* Standard inits */
  23.  
  24. static void InitToolbox(void) {
  25.     InitGraf (&qd.thePort);
  26.     InitFonts ();
  27.     FlushEvents (everyEvent,0);
  28.     InitWindows ();
  29.     InitMenus ();
  30.     TEInit ();
  31.     InitDialogs (nil);
  32.     InitCursor ();
  33. } /*InitToolbox*/
  34.  
  35.  
  36. main()
  37. {
  38.     short i;
  39.     KeyMap myKeyMap;
  40.     
  41.     InitToolbox();
  42.     printf("Hit a key to display its key code.\n");
  43.     while (!Button())
  44.     {
  45.         for (i=0; i<=127; i++)
  46.             if (CheckKey(i))
  47.             {
  48.                 GetKeys(myKeyMap);
  49.                 printf("Code: %d Map: %lx %lx %lx %lx\n", i,myKeyMap[0],myKeyMap[1],myKeyMap[2],myKeyMap[3]);
  50.             }
  51.     }
  52. }
  53.